package pe.gob.osce.sirenas.dao.convert;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import pe.gob.osce.sirenas.model.EspecialidadAcademicaDTO;
import pe.gob.osce.sirenas.model.jpa.Auditoria;
import pe.gob.osce.sirenas.model.jpa.EspecialidadAcademica;
import pe.gob.osce.sirenas.model.jpa.fiscalizacion.FiscalizaEspecialidad;
import pe.gob.osce.sirenas.model.jpa.rectificaciones.HistorialEspecialidadAcademica;



public class EspecialidadAcademicaConvert {

	public EspecialidadAcademicaConvert(){}
	
	
	public static EspecialidadAcademicaDTO createDTO(EspecialidadAcademica especialidadAcademicaJPA){
		
		
		EspecialidadAcademicaDTO objetoDTO=new EspecialidadAcademicaDTO();
		objetoDTO.setIdEspecialidad(especialidadAcademicaJPA.getIdEspecialidad());
		objetoDTO.setIdFicha(especialidadAcademicaJPA.getIdFicha());
		objetoDTO.setIndEspecialidad(especialidadAcademicaJPA.getIndEspecialidad());
		objetoDTO.setIdAreaProfesion(especialidadAcademicaJPA.getIdAreaProfesion());
		objetoDTO.setIdCentroEstudios(especialidadAcademicaJPA.getIdCentroEstudios());
		objetoDTO.setDescripcionOtroCentro(especialidadAcademicaJPA.getDescripcionOtroCentro());
		objetoDTO.setIdPais(especialidadAcademicaJPA.getIdPais());
		objetoDTO.setIndTipoFormacion(especialidadAcademicaJPA.getIndTipoFormacion());
		objetoDTO.setIndGradoObtenido(especialidadAcademicaJPA.getIndGradoObtenido());
		objetoDTO.setDescripcionGrado(especialidadAcademicaJPA.getDescripcionGrado());		
		objetoDTO.setDuracion(especialidadAcademicaJPA.getDuracion());
		objetoDTO.setFecEgreso(especialidadAcademicaJPA.getFecEgreso());
		objetoDTO.setEstado(especialidadAcademicaJPA.getEstado());
		objetoDTO.setCodTramite(especialidadAcademicaJPA.getCodTramite());
		objetoDTO.setCodRegistro(especialidadAcademicaJPA.getCodRegistro());
		
		return objetoDTO;
	}

	public static EspecialidadAcademicaDTO createEspecialidadFiscalizadaDTO(EspecialidadAcademica especialidadAcademicaJPA,FiscalizaEspecialidad fiscalizaEspecialidadJPA){
		
		
		EspecialidadAcademicaDTO objetoDTO=new EspecialidadAcademicaDTO();
		objetoDTO.setIdEspecialidad(especialidadAcademicaJPA.getIdEspecialidad());
		objetoDTO.setIdFicha(especialidadAcademicaJPA.getIdFicha());
		objetoDTO.setIndEspecialidad(especialidadAcademicaJPA.getIndEspecialidad());
		objetoDTO.setIdAreaProfesion(especialidadAcademicaJPA.getIdAreaProfesion());
		objetoDTO.setIdCentroEstudios(especialidadAcademicaJPA.getIdCentroEstudios());
		objetoDTO.setDescripcionOtroCentro(especialidadAcademicaJPA.getDescripcionOtroCentro());
		objetoDTO.setIdPais(especialidadAcademicaJPA.getIdPais());
		objetoDTO.setIndTipoFormacion(especialidadAcademicaJPA.getIndTipoFormacion());
		objetoDTO.setIndGradoObtenido(especialidadAcademicaJPA.getIndGradoObtenido());
		objetoDTO.setDescripcionGrado(especialidadAcademicaJPA.getDescripcionGrado());		
		objetoDTO.setDuracion(especialidadAcademicaJPA.getDuracion());
		objetoDTO.setFecEgreso(especialidadAcademicaJPA.getFecEgreso());
		objetoDTO.setEstado(especialidadAcademicaJPA.getEstado());
		objetoDTO.setCodTramite(especialidadAcademicaJPA.getCodTramite());
		objetoDTO.setCodRegistro(especialidadAcademicaJPA.getCodRegistro());

		objetoDTO.setDescAccion(fiscalizaEspecialidadJPA.getDescAccion() );
		objetoDTO.setDescResultado(fiscalizaEspecialidadJPA.getDescResultado() );
		
		return objetoDTO;
	}

	public static EspecialidadAcademica createJPA(EspecialidadAcademicaDTO especialidadAcademicaDTO,Auditoria auditoria){
		
	
		EspecialidadAcademica objetoJPA=new EspecialidadAcademica();
		objetoJPA.setIdEspecialidad(especialidadAcademicaDTO.getIdEspecialidad());
		objetoJPA.setIdFicha(especialidadAcademicaDTO.getIdFicha());
		objetoJPA.setIndEspecialidad(especialidadAcademicaDTO.getIndEspecialidad());
		objetoJPA.setIdAreaProfesion(especialidadAcademicaDTO.getIdAreaProfesion());
		objetoJPA.setIdCentroEstudios(especialidadAcademicaDTO.getIdCentroEstudios());
		objetoJPA.setDescripcionOtroCentro(especialidadAcademicaDTO.getDescripcionOtroCentro());
		objetoJPA.setIdPais(especialidadAcademicaDTO.getIdPais());
		objetoJPA.setIndTipoFormacion(especialidadAcademicaDTO.getIndTipoFormacion());
		objetoJPA.setIndGradoObtenido(especialidadAcademicaDTO.getIndGradoObtenido());
		objetoJPA.setDescripcionGrado(especialidadAcademicaDTO.getDescripcionGrado());		
		objetoJPA.setDuracion(especialidadAcademicaDTO.getDuracion());
		objetoJPA.setFecEgreso(especialidadAcademicaDTO.getFecEgreso());
		objetoJPA.setEstado(especialidadAcademicaDTO.getEstado());
		objetoJPA.setCodRegistro(especialidadAcademicaDTO.getCodRegistro());
		objetoJPA.setAuditoria(auditoria);
		
		return null;
	}
	
public static List<EspecialidadAcademicaDTO> createListEspecialidadAcademicaDTO(List<EspecialidadAcademica> listaEspecialidadAcademicaJPA){
		
		List<EspecialidadAcademicaDTO> listaObjetoDTO=new ArrayList<EspecialidadAcademicaDTO>();
		EspecialidadAcademicaDTO objetoDTO;

		for (EspecialidadAcademica especialidadAcademicaJPA: listaEspecialidadAcademicaJPA) {
			objetoDTO= new EspecialidadAcademicaDTO();

			objetoDTO.setIdEspecialidad(especialidadAcademicaJPA.getIdEspecialidad());
			objetoDTO.setIdFicha(especialidadAcademicaJPA.getIdFicha());
			objetoDTO.setIndEspecialidad(especialidadAcademicaJPA.getIndEspecialidad());
			objetoDTO.setIdAreaProfesion(especialidadAcademicaJPA.getIdAreaProfesion());
			objetoDTO.setIdCentroEstudios(especialidadAcademicaJPA.getIdCentroEstudios());
			objetoDTO.setDescripcionOtroCentro(especialidadAcademicaJPA.getDescripcionOtroCentro());
			objetoDTO.setIdPais(especialidadAcademicaJPA.getIdPais());
			objetoDTO.setIndTipoFormacion(especialidadAcademicaJPA.getIndTipoFormacion());
			objetoDTO.setIndGradoObtenido(especialidadAcademicaJPA.getIndGradoObtenido());
			objetoDTO.setDescripcionGrado(especialidadAcademicaJPA.getDescripcionGrado());		
			objetoDTO.setDuracion(especialidadAcademicaJPA.getDuracion());
			objetoDTO.setFecEgreso(especialidadAcademicaJPA.getFecEgreso());
			objetoDTO.setEstado(especialidadAcademicaJPA.getEstado());
			objetoDTO.setEsEditable(false);
			objetoDTO.setCodTramite(especialidadAcademicaJPA.getCodTramite());
			objetoDTO.setCodRegistro(especialidadAcademicaJPA.getCodRegistro());
			
			listaObjetoDTO.add(objetoDTO);
		}
		
		return listaObjetoDTO;
		
	}
	
	public static List<EspecialidadAcademica> createListEspecialidadAcademicaJPA(List<EspecialidadAcademicaDTO> listaEspecialidadAcademicaDTO,Auditoria auditoria){
	
		List<EspecialidadAcademica> listaObjetoJPA=new ArrayList<EspecialidadAcademica>();
		EspecialidadAcademica objetoJPA;
	
		for (EspecialidadAcademicaDTO especialidadAcademicaDTO: listaEspecialidadAcademicaDTO) {
			objetoJPA= new EspecialidadAcademica();
			objetoJPA.setIdEspecialidad(especialidadAcademicaDTO.getIdEspecialidad());
			objetoJPA.setIdFicha(especialidadAcademicaDTO.getIdFicha());
			objetoJPA.setIndEspecialidad(especialidadAcademicaDTO.getIndEspecialidad());
			objetoJPA.setIdAreaProfesion(especialidadAcademicaDTO.getIdAreaProfesion());
			objetoJPA.setIdCentroEstudios(especialidadAcademicaDTO.getIdCentroEstudios());
			objetoJPA.setDescripcionOtroCentro(especialidadAcademicaDTO.getDescripcionOtroCentro());
			objetoJPA.setIdPais(especialidadAcademicaDTO.getIdPais());
			objetoJPA.setIndTipoFormacion(especialidadAcademicaDTO.getIndTipoFormacion());
			objetoJPA.setIndGradoObtenido(especialidadAcademicaDTO.getIndGradoObtenido());
			objetoJPA.setDescripcionGrado(especialidadAcademicaDTO.getDescripcionGrado());		
			objetoJPA.setDuracion(especialidadAcademicaDTO.getDuracion());
			objetoJPA.setFecEgreso(especialidadAcademicaDTO.getFecEgreso());
			objetoJPA.setEstado(especialidadAcademicaDTO.getEstado());
			objetoJPA.setCodTramite(especialidadAcademicaDTO.getCodTramite());
			objetoJPA.setCodRegistro(especialidadAcademicaDTO.getCodRegistro());
			objetoJPA.setAuditoria(auditoria);
			
			listaObjetoJPA.add(objetoJPA);
		}
		
		return listaObjetoJPA;
	
	}

	public static List<HistorialEspecialidadAcademica> createListHistorialEspecialidadAcademicaJPA(List<EspecialidadAcademica> listaEspecialidadAcademica,Auditoria auditoria){
		
		List<HistorialEspecialidadAcademica> listaObjetoHistorialJPA=new ArrayList<HistorialEspecialidadAcademica>();
		HistorialEspecialidadAcademica objetoHistorialJPA;
	
		for (EspecialidadAcademica especialidadAcademica: listaEspecialidadAcademica) {
			objetoHistorialJPA= new HistorialEspecialidadAcademica();
			objetoHistorialJPA.setFecHistorial(new Date());
			objetoHistorialJPA.setIdEspecialidad(especialidadAcademica.getIdEspecialidad());
			objetoHistorialJPA.setIdFicha(especialidadAcademica.getIdFicha());
			objetoHistorialJPA.setIndEspecialidad(especialidadAcademica.getIndEspecialidad());
			objetoHistorialJPA.setIdAreaProfesion(especialidadAcademica.getIdAreaProfesion());
			objetoHistorialJPA.setIdCentroEstudios(especialidadAcademica.getIdCentroEstudios());
			objetoHistorialJPA.setDescripcionOtroCentro(especialidadAcademica.getDescripcionOtroCentro());
			objetoHistorialJPA.setIdPais(especialidadAcademica.getIdPais());
			objetoHistorialJPA.setIndTipoFormacion(especialidadAcademica.getIndTipoFormacion());
			objetoHistorialJPA.setIndGradoObtenido(especialidadAcademica.getIndGradoObtenido());
			objetoHistorialJPA.setDescripcionGrado(especialidadAcademica.getDescripcionGrado());		
			objetoHistorialJPA.setDuracion(especialidadAcademica.getDuracion());
			objetoHistorialJPA.setFecEgreso(especialidadAcademica.getFecEgreso());
			objetoHistorialJPA.setEstado(especialidadAcademica.getEstado());
			
			objetoHistorialJPA.setCodTramite(especialidadAcademica.getCodTramite());
			objetoHistorialJPA.setCodRegistro(especialidadAcademica.getCodRegistro());
			objetoHistorialJPA.setAuditoria(auditoria);			
			
			listaObjetoHistorialJPA.add(objetoHistorialJPA);
		}
		
		return listaObjetoHistorialJPA;
		
	}

	public static List<EspecialidadAcademicaDTO> createListHistorialEspecialidadAcademicaDTO(List<HistorialEspecialidadAcademica> listaHistorialEspecialidadAcademicaJPA){
			
			List<EspecialidadAcademicaDTO> listaObjetoDTO=new ArrayList<EspecialidadAcademicaDTO>();
			EspecialidadAcademicaDTO objetoDTO;
	
			for (HistorialEspecialidadAcademica historialEspecialidadAcademicaJPA: listaHistorialEspecialidadAcademicaJPA) {
				objetoDTO= new EspecialidadAcademicaDTO();
				objetoDTO.setIdHistorial(historialEspecialidadAcademicaJPA.getIdHistorial());
				objetoDTO.setFecHistorial(historialEspecialidadAcademicaJPA.getFecHistorial());
				objetoDTO.setIdEspecialidad(historialEspecialidadAcademicaJPA.getIdEspecialidad());
				objetoDTO.setIdFicha(historialEspecialidadAcademicaJPA.getIdFicha());
				objetoDTO.setIndEspecialidad(historialEspecialidadAcademicaJPA.getIndEspecialidad());
				objetoDTO.setIdAreaProfesion(historialEspecialidadAcademicaJPA.getIdAreaProfesion());
				objetoDTO.setIdCentroEstudios(historialEspecialidadAcademicaJPA.getIdCentroEstudios());
				objetoDTO.setDescripcionOtroCentro(historialEspecialidadAcademicaJPA.getDescripcionOtroCentro());
				objetoDTO.setIdPais(historialEspecialidadAcademicaJPA.getIdPais());
				objetoDTO.setIndTipoFormacion(historialEspecialidadAcademicaJPA.getIndTipoFormacion());
				objetoDTO.setIndGradoObtenido(historialEspecialidadAcademicaJPA.getIndGradoObtenido());
				objetoDTO.setDescripcionGrado(historialEspecialidadAcademicaJPA.getDescripcionGrado());		
				objetoDTO.setDuracion(historialEspecialidadAcademicaJPA.getDuracion());
				objetoDTO.setFecEgreso(historialEspecialidadAcademicaJPA.getFecEgreso());
				objetoDTO.setEstado(historialEspecialidadAcademicaJPA.getEstado());
				objetoDTO.setEsEditable(false);
				objetoDTO.setCodTramite(historialEspecialidadAcademicaJPA.getCodTramite());
				objetoDTO.setCodRegistro(historialEspecialidadAcademicaJPA.getCodRegistro());
				listaObjetoDTO.add(objetoDTO);
			}
			
			return listaObjetoDTO;
			
	}
	
}
